package com.it.xuehang.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

;

/**
 * <p>
 * 资源数据
 * </p>
 *
 * @author xuehang
 * @since 2024-12-10
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("RESOURCE_DATA")
public class ResourceData implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资源主键
     */
    @TableId
    private String resourceid;

    /**
     * 资源类别编码
     */
    @NotNull(message = "资源类别编码不能为空")
    @Size(min=3,max = 32, message = "资源类别编码的最小长度为3个字符,最大长度为32个字符")
    private String rescateid;

    /**
     * 仓库编码
     */
    @NotBlank(message = "仓库编码不能为空")
    private String storehouseid;

    /**
     * 避难场所等级编码
     */
    private String protectlevelid;

    /**
     * 避难场所来源编码
     */
    private String protectrankid;

    /**
     * 队伍来源编码
     */
    private String teamfromid;

    /**
     * 专家数据来源编码
     */
    private String expertfromid;

    /**
     * 队伍层级（0市 1区 2街镇 3村居）
     */
    private Integer partylevel;

    /**
     * 队伍管理单位，单位编码
     */
    private String partyunit;

    /**
     * 规格编码
     */
    private String rspecid;

    /**
     * 同步外部数据编码
     */
    private String outid;

    /**
     * 资源名称
     */
    @NotNull(message = "资源名称不能为空")
    @Size(min=3,max = 100, message = "资源名称的最小长度为3个字符,最大长度为100个字符")
    private String resourcename;

    /**
     * 地址
     */
    @NotBlank(message = "资源地址不能为空")
    private String resourceaddress;

    /**
     * 数量，物资装备专用字段
     */
    @NotNull(message = "数量不能为空")
    private BigDecimal count;

    /**
     * 单价(元)
     */
    private BigDecimal price;

    /**
     * 总价
     */
    private BigDecimal sumprice;

    /**
     * 所属单位名称，专家专用
     */
    private String fromunit;

    /**
     * 研究领域，专家专用
     */
    private String goodat;

    /**
     * 人数，队伍专用
     */
    private Integer peoplenum;

    /**
     * 容纳人数，避难场所专用
     */
    private Integer holdnum;

    /**
     * 入库时间，物资装备专用
     */
    @NotNull(message = "入库时间不能为空")
    private Date intime;

    /**
     * 储备类型（0自储、1代储、2协议储备），物资装备专用
     */
    private Integer storetype;

    /**
     * 车辆数据来源
     */
    private String carfrom;

    /**
     * 车辆型号
     */
    private String cartype;

    /**
     * 车辆是否上屏(0 不上 1上屏)
     */
    private Integer caronscreen;

    /**
     * 录入人姓名
     */
    private String entername;

    /**
     * 录入人手机
     */
    private String entermobilephone;

    /**
     * 联系人，除了专家都有这个字段
     */
    @NotBlank(message = "联系人不能为空")
    private String contacts;

    /**
     * 联系电话
     */
    private String telphone;

    /**
     * 联系电话区号
     */
    private String areanum;

    /**
     * 联系电话分机号，可以为空
     */
    private String subnum;

    /**
     * 联系人手机号
     */
    @NotBlank(message = "联系人手机号不能为空")
    private String mobilephone;

    /**
     * 区名（重点监管单位专用字段）
     */
    private String districname;

    /**
     * 区排序（重点监管单位专用字段）
     */
    private Integer districindex;

    /**
     * 所属市
     */
    private String citycode;

    /**
     * 所属区
     */
    private String districtcode;

    /**
     * 所属街道
     */
    private String streetcode;

    /**
     * 所属居委
     */
    private String committeecode;

    /**
     * 创建用户主键
     */
    private String createuserid;

    /**
     * 创建时间
     */
    private Date createtime;

    /**
     * 创建部门
     */
    private String createdep;

    /**
     * 更新用户主键
     */
    private String updateuserid;

    /**
     * 更新时间
     */
    private Date updatetime;

    /**
     * 更新部门
     */
    private String updatedep;

    /**
     * 是导入的数据 （1是 0不是）
     */
    private Integer isimport;

    /**
     * 地址解析是否失败（0未失败 1失败）
     */
    private Integer addressfail;

    private String f1;

    private String f2;

    private String f3;

    private String f4;

    private String f5;

    private String f6;

    private String f7;

    private String f8;

    private String f9;

    private String f10;

    private String f11;

    private String f12;

    private String f13;

    private String f14;

    private String f15;

    private String f16;

    private String f17;

    private String f18;

    private String f19;

    private String f20;


}
